The present invention relates to apparatus and methods for providing available services over an electronic information network. More specifically, the invention relates to apparatus and methods for providing dynamic service discovery and invocation of available services by continuously parsing service registries in a multi-tier network.
The Internet is a world-wide electronic network of interconnected computers that allows for the transmission of information and access to available Web services to any consumer connected to the Internet anywhere in the world. A “consumer” of available Web services, for the purposes of this discussion, may include a human user, an electronic system or a software application that accesses the Internet in order to obtain and utilize the Web services. Web services are only meaningful to a consumer, however, if the availability of the Web services is readily apparent to the consumer at the time the consumer needs to use the Web services.
The behavior and technical interfaces for discovering Web services are well understood in static environments in which the consumer has advance knowledge of the service's technical fingerprint, which is necessary for the successful discovery, binding, and invocation of the Web services. Binding defines how the abstract operations of an interface are actually carried out. The Universal Description Discovery and Integration (UDDI) specifications define a registry service for Web services and for other electronic and non-electronic services. UDDI provides a range of searches such as by service name, businesses, bindings, or by tModels. Although UDDI has many features that makes it appealing for registering Web services, its discovery mechanism has serious limitations. In particular, the UDDI's search function is limited to keyword searches rather than inferences based on taxonomies. These limitations result in high precision and recall errors which are unacceptable in many situations. Also, while UDDI guarantees syntactic interoperability (by using XML to describe its data model), it fails to enable semantic description of its content. Consequently, identical XML descriptions may have different ontological meanings and contextual interpretations. This problem is further aggravated by XML's lack of semantics which creates and additional barrier to UDDI's service discovery.
A UDDI registry service is a Web service that manages information about service providers, service implementations, and service metadata. Service providers can use UDDI to advertise the services they offer. In turn, service consumers can use UDDI to discover services that suit their requirements and to obtain the service metadata needed to consume those services. For example, a consumer can initiate an explicit query against a standard UDDI registry to obtain a desired WSDL document associated with a desired Web service. WSDL is a general purpose XML language for describing the interface, protocol bindings, and the deployment details of network services. Since UDDI and WSDL are co-dependent, WSDL complements the UDDI standard by providing a uniform way of describing the abstract interface and protocol bindings of arbitrary network services. The purpose of the WSDL document is to clarify the relationship between the two and to describe a recommended approach to mapping WSDL descriptions to the UDDI data structures. The WSDL uses concepts of abstract endpoints and messages exchanged between them, and concrete bindings of these into specific protocols and data types. In such a case, the service consumer has an opportunity to explicitly analyze the WSDL document technical contents related to the Web service including service interfaces, protocol bindings, endpoints, and other semantic information before making a conscious decision to initiate a service request.
There are a number of situations, however, in which the service consumer may not have advance knowledge of the desired service's capabilities. Furthermore, even if a search is capable of producing one or more viable services for the service consumer, the ability to dynamically invoke the discovered service without prior knowledge of the technical fingerprint syntax and semantics of the services is extremely limited. Accordingly, it would be desirable to provide an apparatus and method capable of dynamically discovering available Web services and allowing a service consumer to dynamically invoke those Web services, even in cases in which the service's technical fingerprint may not be known to the service consumer at the time the service is needed.